#include "Int_Patrol.h"
#include "Dri_Timer_2.h"
#include "Int_OLED_Data.h"

/** 全白错误次数 */
u8 operation_error_cout = 0;
// 错误总数
static u8 error_count = 0;

/**
 * @brief 初始化,巡逻功能
 * 白色针脚 == 0, 黑色针脚 == 1
 */
char Int_Patrol_Counter()
{
    // 错误权重
    char error_weight = 0;
    error_count       = 0;

    // 设置权重
    if (PATROL_RR) {
        error_weight += 4;
        error_count++;
    }
    if (PATROL_RM) {
        error_weight += 2;
        error_count++;
    }
    if (PATROL_MM) {
        error_weight += 0;
        error_count++;
    }
    if (PATROL_LM) {
        error_weight += -2;
        error_count++;
    }
    if (PATROL_LL) {
        error_weight += -4;
        error_count++;
    }

    if (error_count == 0) {
        return 0;
    }

    return error_weight / error_count;
}

/**
 * @brief 全白错误次数
 *
 */
void Int_Patrol_SetOperation(u8 operation)
{
    operation_error_cout = operation;
}

/**
 * @brief 全白错误次数
 *
 */
u8 Int_Patrol_getOperation()
{
    return operation_error_cout;
}